75 research outputs found

    The theory of classification part 5: axioms, assertions and subtyping

    Get PDF
    The algebraic calculus for reasoning about the complete behavior of object types and the effects of axioms upon subtyping were analyzed. The translation of pure algebra into a piecemeal treatment in terms of variants, pre-, and post conditions was studied. The existing object subtyping rules were applied to derive subtyping rules governing the strengthening, or weakening of the assertions as there was a direct relationship between axiom strengthening, and subtyping. It was found that weaker preconditions co-existed with stronger invariants, and the same system satisfied the stronger of the two

    The theory of classification - part 10: method combination and super-reference

    Get PDF
    The object-oriented theory of classification is analyzed, using models of inheritance with method combination. The method combination strategies using inheritance were found to be equivalent to replacement method. The method combination is achieved by Smalltalk and Java languages and the pseudo-variable in these languages allows a programmer to invoke an inherited version of a method inside the redefined version of same method. The method also provided the pseudo-variable super with two semantic interpretations. The original renaming operator to account for Eiffel's behaviour is also proposed

    The theory of classification part 15: mixins and the superclass interface

    Get PDF
    The fundamental concepts of mixin, an object oriented language, are discussed. Intended to be combined with any other object, mixin is a freestanding record of extra fields. Mixins are also the primitive building blocks in languages with inheritence-like mechanisms. A mixin can be combined with many different base classes, to yield different extended classes which contain the combined base and mixing features. A mixin has a superclass interface, describing the kind of class from which it expects to inherit

    The theory of classification part 11: adding class types to object implementations

    Get PDF
    A model of strongly-typed object generators, in which the class-type information was attached to the object-information was developed. A class was defined as a family of objects that shared a similar implementation strategy, and a family of types shared a similar method interface. It provided a good foundation for developing further model interpretations of other object-oriented concepts such as class hierarchies, abstract classes, and interfaces. A new typed calculus was also used to present a model of strongly-typed inheritance, and a formal obligation to demonstrate that aspects of inheritance were type-sound were also fulfilled

    The theory of classification: part 14: modification and objects like myself

    Get PDF
    The Theory of Classification to handle constructor-methods, through the use of which an object can create another object 'like itself', was discussed. It need implementations of List-methods like cons, heads and tail to manipulate the multimaps, which were essentially association lists with duplicate keys. A sequence of model state updates was modelled as a nested series of method invocations. The constructor-level recursion was a generally useful feature used in the theory for the definition of more complex kinds of datatype

    The theory of classification part 20: modular checking of classtypes

    Get PDF
    A first-order type system has two things to commend it. Firstly, it is quite simple to implement a type-checker that can check types for exact correspondence, or for subtype compatibility with a given type. The type of the source object can be compared with that of the target variable to see if the former can be converted up to the latter, using subtyping rules like those we discussed in [1]. Secondly, code that has been checked once need never be checked again, or recompiled in new contexts. This is because the type system can never reveal more specific information about an object that is passed into a more general variable (which we have called the “type loss problem”), so the code need only be checked once over the most general type that it can accept

    The theory of classification part 19: the proliferation of parameters

    Get PDF
    We consider in more detail the kinds of manipulations performed upon polymorphic class-types. These are expressed using function-bounded type parameters of the form: ? <: F[?], where F is a type function, describing the shape of the interface that the type

    The theory of classification part 17: multiple inheritance and the resolution of inheritance conflicts

    Get PDF
    The author considers the theoretical issues raised by combining multiple implementations. Then, he considers what it means for an object to belong to multiple parent classes, defining the notion of multiple classification

    The theory of classification part 12: building the class hierarchy

    Get PDF
    The construction of specific object instances and the development of simple class hierarchy are discussed. The class hierarchy development includes recognizable classes, with mixtures of default, abstract and concrete methods. Generators that are extended into flexible object creation functions with initialization values passed to superclass functions, mimicking the behavior of real object-oriented languages. It is shown that the classes that are derived by inheritance give rise to objects of exact types, which match the expected interfaces of their superclasses and the separately-declared interfaces
    corecore